// utils/treeUtils.ts
interface Category {
    categoryId: number
    name: string
    parentId: number
    level: number
    children: Category[]
    [key: string]: any
  }
  
  // 平铺数据转树形结构
  export function buildTree(flatData: Category[]): Category[] {
    const map = new Map<number, Category>()
    const roots: Category[] = []
  
    // 第一遍：创建所有节点的映射
    flatData.forEach(item => {
      map.set(item.categoryId, { ...item, children: [] })
    })
  
    // 第二遍：构建父子关系
    flatData.forEach(item => {
      const node = map.get(item.categoryId)!
      if (item.parentId === 0) {
        roots.push(node)
      } else {
        const parent = map.get(item.parentId)
        parent?.children.push(node)
      }
    })
  
    return roots
  }